interface Person{
    name: string
    age: number
    addres: string
    add: () => void
    remove: () => void
}


type PersonFnType<T> = {
  [K in keyof T as T[K] extends Function ? K : never] : T[K]
}

export type testType = PersonFnType<Person>


type F = (params: Person) => string

type ParamsType<T> = T extends (params:any) => infer R ? R : never

type NewType = ParamsType<F>